А много ли юнитов будут с хп баром? если серьёзно то решения нет и фрейм не найти этот, оно зашито в недра движка. Но опять таки Disable pre-selection вариант всё таки, если потом отрисовать кастомные хп бары через специальную модель, если она будет эффектом, то это не вызовет никакой доп нагрузки даже у 100 юнитов.
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
что бы она сразу перешла в режим наведения.. а то выглядит как баг, из-за которого надо нажимать по 2 раза...
Gui -> Force player to use X key
Согласовываешь с хоткеем строительства ======================================
Бафф имеется в виду Бафф или Спецэффект?
Если спецэффект:
Как все запущено...
Id абилки это именно целое число, в 256'ричной системе счислений он выглядит как 'ANeg' к примеру, а как число в десятичной системе - 1095656807 вот так, ну или вот так 414E6567 как шестнадцатеричное.
Делаешь базу данных, всех абилок и всех пустышек, либо через хештаблицу - первое число луюбое, второе твоя пустышка, сохраненное значение - твой ид абилки.
Либо 2 массива, в первом id пустышек, во втором абилок и перебор циклом, пока число в ячейке n массива пустышек не будет равно id текущей пустышки (ту которую купил юнит), ну а потом вручаем юниту абилку из массива абилок из ячейки n. Способов как сопоставить 2 массива чисел не мало, так что мб подумаешь о завязывании с ГУИ, говорят он вызывает рак мозга..
Недавно был такой вопрос.
Перескажу, хоть и не поощряю вопросов, заданных без предварительного долгого лурка.
Легче всего реализуется через использование "уровня предмета" как категории и последующей триггерной проверки, чтобы в инвентаре не было двух предметов одного уровня (цикл+условие).
От себя добавлю, что можно создать предметы-болванки на каждый тип предмета, которые нельзя выбросить. Удалять их при поднятии предмета соответствующего типа (уровня) и добавлять при его выбрасывании (то же цикл+условие, только событие другое.)
отменять постройку юнита если технология уже ап
либо как сразу говорили через ап здания
где каждому твоему зданию будет соответствовать такое же здание но с дополнительным слотом
с продажей юнита открываешь доту и смотришь как там сделан спелл передать предметы у куры
он сделан как раз через продажу юнита
иначе никак
если не нравится пожалуйся богу об этом
или близардам
пусть выпустят новый патч специально для тебя
Помню, что Меллиса что-то похожее делала, еще я где-то видел наработку, там при выборе героя, можно крутить героя, и еще характеристики +описание, если не понрав следующего героя смотрим. Вот на видео Вадима видел. Но то, что ты предлагаешь, это еще внешность менять героя как в фифа, короче максимальной вариации моделей наверное не много будет в варкрафте. Но было бы круто
Чет никаких прорывов, смена уровня инвентаря да спеллбуки, изи.
Вы бы тему Render Engine почитали, вот там так как нигде больше, можно замутить интерфейс хоть по мотивам доты 2, хоть по мотивам диаблы, да вовсе как угодно.
Вместо когтей под задачу лучше подходит аура с бонусным уроном, можно настроить как прямой бонус так и процент, плюс отображается в статусе.
Если система работает в рамках десятков юнитов, за оптимизацию не беспокойся. Если бы речь шла о сотнях юнитов с данным эффектом, но сомневаюсь.
а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
Нужно создать способность на основе стандартной книги заклинаний (Особые -> Предметы -> Книга заклинаний). Поменять ее тип на "Герой", добавить уровни. Для каждого уровня "Книги" можно указать свои заклинания (Данные - Список заклинаний). Если нужно, чтобы вложенные заклинания повышали свой уровень при улучшении "книги", можно создать их в нескольких вариантах ("Грабеж 1", "Грабеж 2", ...) и указывать на каждом уровне книги нужные варианты вложенных способностей.
Можно написать триггер, который будет при изучении героем "Книги заклинаний" менять уровни вложенных способностей (тогда не потребуется создавать разные варианты одной и той же способности, нужно будет просто добавить необходимым заклинаниям уровни). Пример триггера:
Боевая единица - Unit приобретает способность
Если Learned hero skill = Книга заклинаний
Боевая единица - Set level of Грабеж for (Learning hero) to (Level of Книга заклинаний for (Learning hero))
Sicre, только на 1 вопрос будем отвечать в этой теме, у тебя за убийство все пачки или за каждого юнита отдельный дроп?
Если за каждого, то по событию юнит определённого типа умирает, создвай предмет в точке смерти, можно также прописать шанс.
Если же ты работаешь с группой и даёшь общую награду за смерть группы, тогда надо группу создать, обозвать её например (пауки у фантана), добавить туда юнитов, и отслеживать смерть всей группы, ну и так будет каждый раз собственно
Sexua1, никак на гуи не обойти, запомни у тебя есть лишь GetEventDamage() (Damage taken), источник и цель. Отличать тип урона нельзя, нет таких функций, есть ухищрения - вручить юниту пассивку рунных браслетов с резистом 200%, тогда весь магический урон станет отрицательным, таким образом можно отличить урон от атаки (условно, слеш атаки и мины течиса это не отфильтрует) ибо положительный урон физический, отрецаиельный - магический, но чтобы убрать эффект лечения от маг урона, придется ставить таймер на 0.00 сек, снижать хп, а после удалять пассивку и наносить маг урон от лица юнита еще раз, потом снова вручать пассивку, сделав еще переменную для исключения рекурсии.
Но как делать на MUI из специфических событий я понятие не имею.
Через GUI никак. Возможность проверить тип урона завезли, а плашку в GUI редактор нет. Только кодом.
Либо кодер напишет на заказ систему для использования в GUI.
Есть еще довольно популярный DamageEngine, но никогда не пользовался.
В РО есть графа у юнита Движение - скорость поворота там указываешь в секундах скорость его поворота на 180*. Я ставлю 1.0сек, у каждого юнита по умолчанию своя(обычно не больше 0.4сек). Стоять на месте он будет как раз это время которое поворачивается. Разворачиваться будет сразу после приказа.
Отпускание WASD встроенными средствами отловить невозможно, поэтому полноценное управление движением через WASD нереализуемо (как минимум, пока что). Систем же движения с управлением стрелками на сайте есть великое множество, на любой вкус, пользуйтесь поиском.
там один из воронов от медива другой от друидов воронов
от друидов-воронов точно должно работать
чтобы было легче разобраться можешь в редакторе ворона от медива, который НЕ Arav, переименовать и юзать НЕпереименованный
если нет change ищи set
и так посмотри вкладку Анимация - по-моему там смена высоты полета
Ставишь юниту в разделе Бой - Атаки на Нет, потом делаешь две способности на базе одной из сфер (например Предмет: электрическая атака), у одной из них Включен индекс атаки - 1, у другой - 2. Добавляешь первую способность юниту в РО. Когда тебе нужно изменить дальность атаки - удаляешь ту способность сферы, которая есть у юнита и добавляешь другую. Правда при этом не будет видно иконки атаки.
так это самый простой вариант там приказ сам отлавливать .а не замах я так к примеру написал ( но гемора с проверками будет много мне кажется )
можно еще посути менять дистанцию получение приказа на отаку менять у юнита
call SetUnitAcquireRangeBJ( gg_unit_Hblm_0000, 100.00 )
кароч сделал только до ума довести нужно но вроде все работает.
Для увеличения дальности атаки используют улучшение на основе длинностволых мушкетов. Добавить всем героям это улучшение после чего при получении предмета выставляется уровень улучшения функцией SetPlayerTechResearched
что бы она сразу перешла в режим наведения.. а то выглядит как баг, из-за которого надо нажимать по 2 раза...
Gui -> Force player to use X key
Согласовываешь с хоткеем строительства ======================================
Бафф имеется в виду Бафф или Спецэффект?
Если спецэффект:
Нужно улучшение в требованиях способности поставить, посмотри какие-нибудь стандартные способности, чтобы понять, например, Внутреннее пламя Целителя Альянса.
Такой возможности, к сожалению, система вопросов не предоставляет. Это работает только с обычными ресурсами. И реализовывать в ближайшее время точно не планируется
Вроде бы удалось решить проблему самостоятельно. Ошибка действительно была элементарной - идентификатор не устраивал введённый туда заглавный символ, а я не знал об этом. Простите за беспокойство.
Да у тебя куча дыр, во-первых ты не запустил триггер 115 области lumber direction, и оно соответственно не реагирует на событие. Во-вторых перепроверь gold проверку условия на да или нет в той карте которую ты отправил стоит нет
А золото не движется потому что ты ожидание 0,5 сек поставил а область в милисекунде от изначальной то есть триггер не успевает запуститься
да, сейчас вообще обратил внимание что текстуры идущие в комплекте не воспринимаются почему-то, а именно "Shield.blp".
Все равно проблема не решилась, вроде бы смог заменить текстуру, которую не видел но варик не воспринимает модель.
1
Afterdeath, скрин не могу, я с мобильного сейчас. Текстом напишу, по памяти.
Действия:
Pick every unit in playable map area and do multiple actions:
If picked unit belongs to ally of (Игрок 1) = да then (это союзник игрока 1).
Hide picked unit.
Делай мвссив с индексом равным номеру игрока (чтоб не запутаться) При событии ставь условие на триггеринг игрока. Если триггенинг игрок = красный то перекидывай соотв. юнита по индексу. напр MyHero[1]. Используй if then else. Все вместится в 1 триггер с кол-вом событий равным кол-ву игроков.
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
native GroupEnumUnitsInRect takes group whichGroup, rect r, boolexpr filter returns nothing
//на месте фильтра должна быть функция (которая возвращает boolean) обрабатываемая этой
native Condition takes code func returns conditionfunc
//с помощью этого можно определить жив ли юнит
constant native IsUnitType takes unit whichUnit, unittype whichUnitType returns boolean
constant unittype UNIT_TYPE_DEAD = ConvertUnitType(1)
//а с помощью этого можно проверить чьи это юниты
constant native GetOwningPlayer takes unit whichUnit returns player
если игрок, чьих юнитов мы проверяем, будет, к примеру, рандомно меняться, то передавай его в функцию фильтра через глобальную переменную, устанавливая ей нужное значение непосредственно перед пиком
если группа будет пуста, значит юнитов в области нет...
я не помню что там да как в гуи, но посидев, поигравшись часик-два с этими функциями можно спокойно написать требующиеся 10-15 строк рано или поздно пора начинать учить этот чертов джасс!
решил проблему костылём - дал возможность рабочему строить только башню - шаблонку, которая в свою очередь может улучшаться в две указанные башни. Взаимосвязь поставить только от башни - шаблонки. Лимит поставил на башню шаблонки.
Но тема не закрыта. Хотелось бы узнать можно ли решить проблему без костылей.
По завершении строительства фермы увеличивай число получаемого игроком золота (переменная из масива), а при смерти - уменьшай. (соответственно, наоборот, для пехотинцев)
А вообще - фича бесполезная в рамках стандартного мили-режима варкрафта. Слишком профитно уходить в экономику.
Через тип текстуры земли или как там трава называется.
За кругом используешь ту, которой нет в игровой зоне. Если юнит находиться на ней, то твои действия.
Выключай даммику пасинг и переноси в нужную точку.
local unit d
local real x=GetUnitX(u)
local real y=GetUnitY(u)
......
set d=CreateUnit(p,dummy,0,0,0)
call SetUnitPathing(d,false)
call SetUnitX(d,x)
call SetUnitY(d,y)
quq_CCCP, благодарю, но всё же хотелось бы именно с thistype.next, thistype.prev.
кажется, я сделаль:
struct data
static timer period = CreateTimer( )
thistype prev
thistype next
unit u
integer a
method destroy takes nothing returns nothing
set this.prev.next = this.next
set this.next.prev = this.prev
if ( thistype(0).next == 0 ) then
call PauseTimer( period )
endif
call thistype.deallocate( this )
endmethod
static method iterate takes nothing returns nothing
local thistype this = thistype( 0 ).next
loop
exitwhen ( this == 0 )
set this.a = this.a + 1
call SetUnitVortexColor( this.u, 255, 255, 255, this.a )
if ( this.a > 255 ) then
call this.destroy( )
endif
set this = this.next
endloop
endmethod
static method createUnit takes nothing returns thistype
local thistype this = thistype.allocate( )
set this.next = 0
set this.prev = thistype(0).prev
set this.next.prev = this
set this.prev.next = this
set this.u = CreateUnit(...)
set this.a = 0
call SetUnitVortexColor( this.u, 255, 255, 255, this.a )
if ( this.prev == 0 ) then
call TimerStart( period, 0.03125, true, function thistype.iterate )
endif
return this
endmethod
endstruct
Ну тут вся фитча в канале, тут чаннелинг когда завершится тогда бара переместится + защита от сбивания приказа, т.е снова начинает кастовать скилл. Сам ульт бары основан на канале, смотри его настройки. Мне больше нравился старый вариант, где бара мгновенно кастовал ульт и растворялся в воздухе, после атаковал цель...
Самое простое - отредактировать стандартные лучи. Сделать их максимально толстыми наверху и обычными пониже, увеличить количество частиц в секунду и время жизни. Можно и переблёскивающийся оттенок сделать сверху на середину.
Если правильно настроить угол падения, то можно добиться, чтобы лучи были видны только по краям камеры.Поищи статью про погоду. Хотя можешь воспользоваться этой картой, но там нет пояснений, только файл погоды и путь.
Редактировать удобнее через SLKEditor
попробуй что я сделал)
GetMouseX() не может вызывать десинхрон, т.к не создает хендл
Десинхронило потому что ты делал условие if x>=1485 and x<=1485+61 and y>=1000 and y<=1064 then
на машинах других игроков X был равен 0 и поэтому он не проходил через условие, т.е получается что ты создавал игровой объект локально
Далее в функции движения снаряда определяем столкновение с землёй, получаем нормаль и строим вектор отражения по данной нормали и текущей скорости снаряда:
Нужно отредактировать файл MiscData, чтобы создавать более крутые склоны (тогда зависимость высоты от размера кисти уменьшится).
А именно строку "MaxSlope=50" на "MaxSlope=90".
Полностью поддерживаю решение того/тех, кто понизил уровень, т.к. ваши срачи в блогах не только бессмысленны, но и не несут развлекательного характера, т.е. абсолютно пустая трата времени и мозговых клеток.
Извинение также ничего не значит, имхо, т.к. нет гарантий, что подобные ситуации не повторятся.
Однако это не значит, что если вы будете делать что-то более интересное или хотя бы не бессмысленное в своих блогах, то вам не повысят уровень снова. Т.е. вы можете в принципе писать что хотите, но если это не будет иметь никакого смысла за собой, или будет абузить системы сайта (например набивание опыта и пр.), то не ожидайте, что администрация будет сидеть и смотреть на это. В этом случае из-за понижения уровня, насколько я понял, отключился опыт за комменты, т.к. все, что было в блоге - бесцельный флуд.
Найдите что-то, о чем вам будет интересно писать в блоге, наполняйте его контентом, и либо модераторский состав заметит, что блог стал лучше, либо вы сами, если будете довольны контентом своего блога, сможете в определенный момент написать об этом менеджерам, попросить повышения уровня. Пока же считаю решение о понижении правильным. Такие дела.
Еще для примера, если вы хотите блог со спорным контентом, можете посмотреть на этот, еще обратите внимание на данный блог, вот тут я был несогласен о понижении уровня, т.к. мне кажется, что контент там, несмотря на то, что оскорбительный, полностью направлен на развлечение (причем как читающих, так и самого блоггера), но понижен и скрыт он был из-за постоянных оскорблений в адрес администрации (вроде бы), вот уж там действительно спорный и классный блог, для которого даже скрытие не было проблемой в свое время, т.к. пока остаются читатели, остается и блог.
shmatko, там нужна задержка. обычно хватает задержки в 0.0 сек. Во многих случаях использую, тк вар не успевает подготовить и прочее. Такие случаи в варе не новы. Здесь она тоже пригодилась. Короче я пробовал на гуи вэйт в 0.00 сек. Но видна иконка на сек, как вы сказали. а попробовал таймером в 0.00 сек норм получилось, иконки не видно
У таймера запуск происходит сразу, вэйт медлителен
» WarCraft 3 / Как сделать такой хп-бар
» WarCraft 3 / Не работает специальная вставка
» IrInA Host Bot / не заходит в созданную карту
» WarCraft 3 / Одна способность активирует другую
» WarCraft 3 / Путь в ад?
» WarCraft 3 / Как сделать такой инвентарь?
» WarCraft 3 / Помощь с заклинанием
» Программирование / Ошибка в Коде
» WarCraft 3 / Урон тригерно
» WarCraft 3 / Движение юнита
» WarCraft 3 / Дальность атаки
» WarCraft 3 / Как выдать способность зданию
» Администрация XGM / Дополнительные поля в создании вопросов
» WarCraft 3 / Где звуки?
» WarCraft 3 / Что не так?
» WarCraft 3 / Проверка типа юнитов
» WarCraft 3 / SetUnitVertexColor
» WarCraft 3 / Эффекты на экране
» WarCraft 3 / Точка приложения эффекта
» Администрация XGM / Баг с созданием ресурса
» WarCraft 3 / 2 Клифа
» IrInA Host Bot / Жалоба
» WarCraft 3 / Reforged и CommandFunc.txt